/*
*权限校验
*通过vueRouter中的前置钩子函数.beforeEach((to, from, next) => {})
to:即将要进入的目标路由对象
from:即将要离开的路由对象
next:是一个方法，可以指定路由地址，进行路由跳转
*当进行路由跳转之前，进行判断，是否已经登陆，登录过则允许访问首页，否则回到登录页
*/
import router from './router.js'   //导入路由组件，因为路由组件将router进行了导出
import { getUserInfo } from '@/api/login.js'
router.beforeEach((to, from, next) => {
    const token = localStorage.getItem("yyy-msm-token");
    console.log(token);
    //1.没有获取到token
    if (!token) {
        //1.1如果未获取到，要访问非登陆页面,则不让访问，回到登录页
        if (to.path !== '/login') {
            next({ path: '/login' });
        } else {
            //1.2 直接请求登陆页面
            next();
        }
    } else {//2.有获取到token
        //2.1 请求路径为login，则直接访问
        if (to.path === './login') {
            next();
        } else {//2.2 请求路径不是login
            //2.2.1 先在本地查看有无用户信息
            const userinfo = localStorage.getItem("yyy-msm-user");
            if (userinfo) {//有用户信息
                next();
            } else {//2.1.2无用户信息，去后台获取
                getUserInfo(token).then(response => {
                    const resp = response;
                    if (resp.flag) {//后台获取成功
                        localStorage.setItem("yyy-msm-user", JSON.stringify(resp.data));
                        nest();//z直接去自己想去的页面
                    } else {
                        //未获取到用户信息，去登陆页面
                        next({ path: '/login' })
                    }
                })
            }
        }
    }
})